package com.ruoyi.bluebera.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 用户订单对象 biz_orders
 * 
 * @author ruoyi
 * @date 2025-07-29
 */
public class BizOrders extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 用户钱包地址 */
    @Excel(name = "用户钱包地址")
    private String walletAddress;

    /** 币种符号 */
    @Excel(name = "币种符号")
    private String tokenSymbol;

    /** 网络类型 */
    @Excel(name = "网络类型")
    private String network;

    /** 支付币种数量 */
    @Excel(name = "支付币种数量")
    private BigDecimal amountPaid;

    /** 兑换的bluebera数量 */
    @Excel(name = "兑换的bluebera数量")
    private BigDecimal blueberaAmount;

    /** 兑换bluebera汇率 */
    @Excel(name = "兑换bluebera汇率")
    private BigDecimal rateToBluebera;

    /** 链上交易哈希 */
    @Excel(name = "链上交易哈希")
    private String txHash;

    /** 订单逻辑状态 */
    @Excel(name = "订单逻辑状态")
    private String status;

    /** 链上交易状态 */
    @Excel(name = "链上交易状态")
    private String txStatus;

    /** 区块高度 */
    @Excel(name = "区块高度")
    private Long blockNumber;

    /** 确认数 */
    @Excel(name = "确认数")
    private Long confirmations;

    /** Gas使用量 */
    @Excel(name = "Gas使用量")
    private Long gasUsed;

    /** 上次链上扫描时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "上次链上扫描时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date scanLastChecked;

    /** 链上扫描出错信息 */
    @Excel(name = "链上扫描出错信息")
    private String scanError;

    /** 验证信息 */
    @Excel(name = "验证信息")
    private String nonce;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedAt;

    private String orderId;

    public String getOrderId() {
        return orderId;
    }

    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setWalletAddress(String walletAddress) 
    {
        this.walletAddress = walletAddress;
    }

    public String getWalletAddress() 
    {
        return walletAddress;
    }

    public void setTokenSymbol(String tokenSymbol) 
    {
        this.tokenSymbol = tokenSymbol;
    }

    public String getTokenSymbol() 
    {
        return tokenSymbol;
    }

    public void setNetwork(String network) 
    {
        this.network = network;
    }

    public String getNetwork() 
    {
        return network;
    }

    public void setAmountPaid(BigDecimal amountPaid) 
    {
        this.amountPaid = amountPaid;
    }

    public BigDecimal getAmountPaid() 
    {
        return amountPaid;
    }

    public void setBlueberaAmount(BigDecimal blueberaAmount) 
    {
        this.blueberaAmount = blueberaAmount;
    }

    public BigDecimal getBlueberaAmount() 
    {
        return blueberaAmount;
    }

    public void setRateToBluebera(BigDecimal rateToBluebera) 
    {
        this.rateToBluebera = rateToBluebera;
    }

    public BigDecimal getRateToBluebera() 
    {
        return rateToBluebera;
    }

    public void setTxHash(String txHash) 
    {
        this.txHash = txHash;
    }

    public String getTxHash() 
    {
        return txHash;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public void setTxStatus(String txStatus) 
    {
        this.txStatus = txStatus;
    }

    public String getTxStatus() 
    {
        return txStatus;
    }

    public void setBlockNumber(Long blockNumber) 
    {
        this.blockNumber = blockNumber;
    }

    public Long getBlockNumber() 
    {
        return blockNumber;
    }

    public void setConfirmations(Long confirmations) 
    {
        this.confirmations = confirmations;
    }

    public Long getConfirmations() 
    {
        return confirmations;
    }

    public void setGasUsed(Long gasUsed) 
    {
        this.gasUsed = gasUsed;
    }

    public Long getGasUsed() 
    {
        return gasUsed;
    }

    public void setScanLastChecked(Date scanLastChecked) 
    {
        this.scanLastChecked = scanLastChecked;
    }

    public Date getScanLastChecked() 
    {
        return scanLastChecked;
    }

    public void setScanError(String scanError) 
    {
        this.scanError = scanError;
    }

    public String getScanError() 
    {
        return scanError;
    }

    public void setNonce(String nonce) 
    {
        this.nonce = nonce;
    }

    public String getNonce() 
    {
        return nonce;
    }

    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }

    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("walletAddress", getWalletAddress())
            .append("tokenSymbol", getTokenSymbol())
            .append("network", getNetwork())
            .append("amountPaid", getAmountPaid())
            .append("blueberaAmount", getBlueberaAmount())
            .append("rateToBluebera", getRateToBluebera())
            .append("txHash", getTxHash())
            .append("status", getStatus())
            .append("txStatus", getTxStatus())
            .append("blockNumber", getBlockNumber())
            .append("confirmations", getConfirmations())
            .append("gasUsed", getGasUsed())
            .append("scanLastChecked", getScanLastChecked())
            .append("scanError", getScanError())
            .append("nonce", getNonce())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .toString();
    }
}
